﻿using AutoMapper;
using BCDto.OA.WorkflowActive.WorkflowActivityStep;
using BCDto.OA.WorkflowTemplate.WorkflowTemplate;
using BCDto.OA.WorkflowTemplate.WorkflowTemplateFlowStepDesign;
using BCDto.OA.WorkflowTemplate.WorkflowTemplatePermission;
using BCDto.OA.WorkflowTemplate.WorkflowTemplateStepBaseConfig;
using BCDto.OA.WorkflowTemplate.WorkflowTemplateStepButtonConfig;
using BCDto.OA.WorkflowTemplate.WorkflowTemplateStepConditionBaseConfig;
using BCDto.OA.WorkflowTemplate.WorkflowTemplateStepConditionConfig;
using BCDto.OA.WorkflowTemplate.WorkflowTemplateStepCountersignConfig;
using BCDto.OA.WorkflowTemplate.WorkflowTemplateStepEndBaseConfig;
using BCDto.OA.WorkflowTemplate.WorkflowTemplateStepFormTemplateConfig;
using BCDto.OA.WorkflowTemplate.WorkflowTemplateStepLineConfig;
using BCDto.OA.WorkflowTemplate.WorkflowTemplateStepLinePathConfig;
using BCDto.OA.WorkflowTemplate.WorkflowTemplateStepNotificationConfig;
using BCDto.OA.WorkflowTemplate.WorkflowTemplateStepReviewerConfig;
using BCDto.OA.WorkflowTemplate.WorkflowTemplateStepStartBaseConfig;
using BCDto.OA.WorkflowTemplate.WorkflowTemplateStepSubFlowConfig;
using BCDto.OA.WorkflowTemplate.WorkflowTemplateStepTypeConfig;
using BCEntity.OA.WorkflowActive.WorkflowActivityStep;
using BCEntity.OA.WorkflowTemplate.WorkflowTemplate;
using BCEntity.OA.WorkflowTemplate.WorkflowTemplateFlowStepDesign;
using BCEntity.OA.WorkflowTemplate.WorkflowTemplatePermission;
using BCEntity.OA.WorkflowTemplate.WorkflowTemplateStepBaseConfig;
using BCEntity.OA.WorkflowTemplate.WorkflowTemplateStepButtonConfig;
using BCEntity.OA.WorkflowTemplate.WorkflowTemplateStepConditionBaseConfig;
using BCEntity.OA.WorkflowTemplate.WorkflowTemplateStepConditionConfig;
using BCEntity.OA.WorkflowTemplate.WorkflowTemplateStepCountersignConfig;
using BCEntity.OA.WorkflowTemplate.WorkflowTemplateStepEndBaseConfig;
using BCEntity.OA.WorkflowTemplate.WorkflowTemplateStepFormTemplateConfig;
using BCEntity.OA.WorkflowTemplate.WorkflowTemplateStepLineConfig;
using BCEntity.OA.WorkflowTemplate.WorkflowTemplateStepLinePathConfig;
using BCEntity.OA.WorkflowTemplate.WorkflowTemplateStepNotificationConfig;
using BCEntity.OA.WorkflowTemplate.WorkflowTemplateStepReviewerConfig;
using BCEntity.OA.WorkflowTemplate.WorkflowTemplateStepStartBaseConfig;
using BCEntity.OA.WorkflowTemplate.WorkflowTemplateStepSubFlowConfig;
using BCEntity.OA.WorkflowTemplate.WorkflowTemplateStepTypeConfig;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace BCWorkflowEngine.MapperProfiles
{
    public class OAProfile : Profile
    {
        public OAProfile()
        {
            #region 工作流设计器
            //工作流模板
            CreateMap<WorkflowTemplateDto, WorkflowTemplateEntity>().IgnoreAllPropertiesWithAnInaccessibleSetter();
            CreateMap<WorkflowTemplateRequestDto, WorkflowTemplatePutDto>().IgnoreAllPropertiesWithAnInaccessibleSetter();
            CreateMap<WorkflowTemplateRequestDto, WorkflowTemplateEntity>().IgnoreAllPropertiesWithAnInaccessibleSetter();
            CreateMap<WorkflowTemplatePutDto, WorkflowTemplateEntity>().IgnoreAllPropertiesWithAnInaccessibleSetter();
            CreateMap<WorkflowTemplateEntity, WorkflowTemplateDto>().IgnoreAllPropertiesWithAnInaccessibleSetter();

            //工作流模板权限
            CreateMap<WorkflowTemplatePermissionDto, WorkflowTemplatePermissionEntity>().IgnoreAllPropertiesWithAnInaccessibleSetter();
            CreateMap<WorkflowTemplatePermissionRequestDto, WorkflowTemplatePermissionPutDto>().IgnoreAllPropertiesWithAnInaccessibleSetter();
            CreateMap<WorkflowTemplatePermissionRequestDto, WorkflowTemplatePermissionEntity>().IgnoreAllPropertiesWithAnInaccessibleSetter();
            CreateMap<WorkflowTemplatePermissionPutDto, WorkflowTemplatePermissionEntity>().IgnoreAllPropertiesWithAnInaccessibleSetter();
            CreateMap<WorkflowTemplatePermissionEntity, WorkflowTemplatePermissionDto>().IgnoreAllPropertiesWithAnInaccessibleSetter();


            //工作流模板流程步骤设计
            CreateMap<WorkflowTemplateFlowStepDesignDto, WorkflowTemplateFlowStepDesignEntity>().IgnoreAllPropertiesWithAnInaccessibleSetter();
            CreateMap<WorkflowTemplateFlowStepDesignRequestDto, WorkflowTemplateFlowStepDesignPutDto>().IgnoreAllPropertiesWithAnInaccessibleSetter();
            CreateMap<WorkflowTemplateFlowStepDesignRequestDto, WorkflowTemplateFlowStepDesignEntity>().IgnoreAllPropertiesWithAnInaccessibleSetter();
            CreateMap<WorkflowTemplateFlowStepDesignPutDto, WorkflowTemplateFlowStepDesignEntity>().IgnoreAllPropertiesWithAnInaccessibleSetter();
            CreateMap<WorkflowTemplateFlowStepDesignEntity, WorkflowTemplateFlowStepDesignDto>().IgnoreAllPropertiesWithAnInaccessibleSetter();

            //工作流模板步骤
            CreateMap<WorkflowActivityStepDto, WorkflowActivityStepEntity>().IgnoreAllPropertiesWithAnInaccessibleSetter();
            CreateMap<WorkflowActivityStepRequestDto, WorkflowActivityStepPutDto>().IgnoreAllPropertiesWithAnInaccessibleSetter();
            CreateMap<WorkflowActivityStepRequestDto, WorkflowActivityStepEntity>().IgnoreAllPropertiesWithAnInaccessibleSetter();
            CreateMap<WorkflowActivityStepPutDto, WorkflowActivityStepEntity>().IgnoreAllPropertiesWithAnInaccessibleSetter();
            CreateMap<WorkflowActivityStepEntity, WorkflowActivityStepDto>().IgnoreAllPropertiesWithAnInaccessibleSetter();

            //工作流模板步骤审核人配置
            CreateMap<WorkflowTemplateStepReviewerConfigDto, WorkflowTemplateStepReviewerConfigEntity>().IgnoreAllPropertiesWithAnInaccessibleSetter();
            CreateMap<WorkflowTemplateStepReviewerConfigRequestDto, WorkflowTemplateStepReviewerConfigPutDto>().IgnoreAllPropertiesWithAnInaccessibleSetter();
            CreateMap<WorkflowTemplateStepReviewerConfigRequestDto, WorkflowTemplateStepReviewerConfigEntity>().IgnoreAllPropertiesWithAnInaccessibleSetter();
            CreateMap<WorkflowTemplateStepReviewerConfigPutDto, WorkflowTemplateStepReviewerConfigEntity>().IgnoreAllPropertiesWithAnInaccessibleSetter();
            CreateMap<WorkflowTemplateStepReviewerConfigEntity, WorkflowTemplateStepReviewerConfigDto>().IgnoreAllPropertiesWithAnInaccessibleSetter();

            //工作流模板步骤线配置
            CreateMap<WorkflowTemplateStepLineConfigDto, WorkflowTemplateStepLineConfigEntity>().IgnoreAllPropertiesWithAnInaccessibleSetter();
            CreateMap<WorkflowTemplateStepLineConfigRequestDto, WorkflowTemplateStepLineConfigPutDto>().IgnoreAllPropertiesWithAnInaccessibleSetter();
            CreateMap<WorkflowTemplateStepLineConfigRequestDto, WorkflowTemplateStepLineConfigEntity>().IgnoreAllPropertiesWithAnInaccessibleSetter();
            CreateMap<WorkflowTemplateStepLineConfigPutDto, WorkflowTemplateStepLineConfigEntity>().IgnoreAllPropertiesWithAnInaccessibleSetter();
            CreateMap<WorkflowTemplateStepLineConfigEntity, WorkflowTemplateStepLineConfigDto>().IgnoreAllPropertiesWithAnInaccessibleSetter();

            //工作流末班步骤线条路径配置
            CreateMap<WorkflowTemplateStepLinePathConfigDto, WorkflowTemplateStepLinePathConfigEntity>().IgnoreAllPropertiesWithAnInaccessibleSetter();
            CreateMap<WorkflowTemplateStepLinePathConfigRequestDto, WorkflowTemplateStepLinePathConfigPutDto>().IgnoreAllPropertiesWithAnInaccessibleSetter();
            CreateMap<WorkflowTemplateStepLinePathConfigRequestDto, WorkflowTemplateStepLinePathConfigEntity>().IgnoreAllPropertiesWithAnInaccessibleSetter();
            CreateMap<WorkflowTemplateStepLinePathConfigPutDto, WorkflowTemplateStepLinePathConfigEntity>().IgnoreAllPropertiesWithAnInaccessibleSetter();
            CreateMap<WorkflowTemplateStepLinePathConfigEntity, WorkflowTemplateStepLinePathConfigDto>().IgnoreAllPropertiesWithAnInaccessibleSetter();

            //工作流模板步骤类型配置
            CreateMap<WorkflowTemplateStepTypeConfigDto, WorkflowTemplateStepTypeConfigEntity>().IgnoreAllPropertiesWithAnInaccessibleSetter();
            CreateMap<WorkflowTemplateStepTypeConfigRequestDto, WorkflowTemplateStepTypeConfigPutDto>().IgnoreAllPropertiesWithAnInaccessibleSetter();
            CreateMap<WorkflowTemplateStepTypeConfigRequestDto, WorkflowTemplateStepTypeConfigEntity>().IgnoreAllPropertiesWithAnInaccessibleSetter();
            CreateMap<WorkflowTemplateStepTypeConfigPutDto, WorkflowTemplateStepTypeConfigEntity>().IgnoreAllPropertiesWithAnInaccessibleSetter();
            CreateMap<WorkflowTemplateStepTypeConfigEntity, WorkflowTemplateStepTypeConfigDto>().IgnoreAllPropertiesWithAnInaccessibleSetter();

            //工作流模板步骤开始配置
            CreateMap<WorkflowTemplateStepStartBaseConfigDto, WorkflowTemplateStepStartBaseConfigEntity>().IgnoreAllPropertiesWithAnInaccessibleSetter();
            CreateMap<WorkflowTemplateStepStartBaseConfigRequestDto, WorkflowTemplateStepStartBaseConfigPutDto>().IgnoreAllPropertiesWithAnInaccessibleSetter();
            CreateMap<WorkflowTemplateStepStartBaseConfigRequestDto, WorkflowTemplateStepStartBaseConfigEntity>().IgnoreAllPropertiesWithAnInaccessibleSetter();
            CreateMap<WorkflowTemplateStepStartBaseConfigPutDto, WorkflowTemplateStepStartBaseConfigEntity>().IgnoreAllPropertiesWithAnInaccessibleSetter();
            CreateMap<WorkflowTemplateStepStartBaseConfigEntity, WorkflowTemplateStepStartBaseConfigDto>().IgnoreAllPropertiesWithAnInaccessibleSetter();

            //工作流模板步骤配置
            CreateMap<WorkflowTemplateStepBaseConfigDto, WorkflowTemplateStepBaseConfigEntity>().IgnoreAllPropertiesWithAnInaccessibleSetter();
            CreateMap<WorkflowTemplateStepBaseConfigRequestDto, WorkflowTemplateStepBaseConfigPutDto>().IgnoreAllPropertiesWithAnInaccessibleSetter();
            CreateMap<WorkflowTemplateStepBaseConfigRequestDto, WorkflowTemplateStepBaseConfigEntity>().IgnoreAllPropertiesWithAnInaccessibleSetter();
            CreateMap<WorkflowTemplateStepBaseConfigPutDto, WorkflowTemplateStepBaseConfigEntity>().IgnoreAllPropertiesWithAnInaccessibleSetter();
            CreateMap<WorkflowTemplateStepBaseConfigEntity, WorkflowTemplateStepBaseConfigDto>().IgnoreAllPropertiesWithAnInaccessibleSetter();

            //工作流模板步骤表单模板配置
            CreateMap<WorkflowTemplateStepFormTemplateConfigDto, WorkflowTemplateStepFormTemplateConfigEntity>().IgnoreAllPropertiesWithAnInaccessibleSetter();
            CreateMap<WorkflowTemplateStepFormTemplateConfigRequestDto, WorkflowTemplateStepFormTemplateConfigPutDto>().IgnoreAllPropertiesWithAnInaccessibleSetter();
            CreateMap<WorkflowTemplateStepFormTemplateConfigRequestDto, WorkflowTemplateStepFormTemplateConfigEntity>().IgnoreAllPropertiesWithAnInaccessibleSetter();
            CreateMap<WorkflowTemplateStepFormTemplateConfigPutDto, WorkflowTemplateStepFormTemplateConfigEntity>().IgnoreAllPropertiesWithAnInaccessibleSetter();
            CreateMap<WorkflowTemplateStepFormTemplateConfigEntity, WorkflowTemplateStepFormTemplateConfigDto>().IgnoreAllPropertiesWithAnInaccessibleSetter();

            //工作流模板步骤条件基本配置
            CreateMap<WorkflowTemplateStepConditionBaseConfigDto, WorkflowTemplateStepConditionBaseConfigEntity>().IgnoreAllPropertiesWithAnInaccessibleSetter();
            CreateMap<WorkflowTemplateStepConditionBaseConfigRequestDto, WorkflowTemplateStepConditionBaseConfigPutDto>().IgnoreAllPropertiesWithAnInaccessibleSetter();
            CreateMap<WorkflowTemplateStepConditionBaseConfigRequestDto, WorkflowTemplateStepConditionBaseConfigEntity>().IgnoreAllPropertiesWithAnInaccessibleSetter();
            CreateMap<WorkflowTemplateStepConditionBaseConfigPutDto, WorkflowTemplateStepConditionBaseConfigEntity>().IgnoreAllPropertiesWithAnInaccessibleSetter();
            CreateMap<WorkflowTemplateStepConditionBaseConfigEntity, WorkflowTemplateStepConditionBaseConfigDto>().IgnoreAllPropertiesWithAnInaccessibleSetter();

            //工作流模板步骤条件表单配置
            CreateMap<WorkflowTemplateStepConditionConfigDto, WorkflowTemplateStepConditionConfigEntity>().IgnoreAllPropertiesWithAnInaccessibleSetter();
            CreateMap<WorkflowTemplateStepConditionConfigRequestDto, WorkflowTemplateStepConditionConfigPutDto>().IgnoreAllPropertiesWithAnInaccessibleSetter();
            CreateMap<WorkflowTemplateStepConditionConfigRequestDto, WorkflowTemplateStepConditionConfigEntity>().IgnoreAllPropertiesWithAnInaccessibleSetter();
            CreateMap<WorkflowTemplateStepConditionConfigPutDto, WorkflowTemplateStepConditionConfigEntity>().IgnoreAllPropertiesWithAnInaccessibleSetter();
            CreateMap<WorkflowTemplateStepConditionConfigEntity, WorkflowTemplateStepConditionConfigDto>().IgnoreAllPropertiesWithAnInaccessibleSetter();

            //工作流模板步骤会签配置
            CreateMap<WorkflowTemplateStepCountersignConfigDto, WorkflowTemplateStepCountersignConfigEntity>().IgnoreAllPropertiesWithAnInaccessibleSetter();
            CreateMap<WorkflowTemplateStepCountersignConfigRequestDto, WorkflowTemplateStepCountersignConfigPutDto>().IgnoreAllPropertiesWithAnInaccessibleSetter();
            CreateMap<WorkflowTemplateStepCountersignConfigRequestDto, WorkflowTemplateStepCountersignConfigEntity>().IgnoreAllPropertiesWithAnInaccessibleSetter();
            CreateMap<WorkflowTemplateStepCountersignConfigPutDto, WorkflowTemplateStepCountersignConfigEntity>().IgnoreAllPropertiesWithAnInaccessibleSetter();
            CreateMap<WorkflowTemplateStepCountersignConfigEntity, WorkflowTemplateStepCountersignConfigDto>().IgnoreAllPropertiesWithAnInaccessibleSetter();

            //工作流模板步骤通知配置
            CreateMap<WorkflowTemplateStepNotificationConfigDto, WorkflowTemplateStepNotificationConfigEntity>().IgnoreAllPropertiesWithAnInaccessibleSetter();
            CreateMap<WorkflowTemplateStepNotificationConfigRequestDto, WorkflowTemplateStepNotificationConfigPutDto>().IgnoreAllPropertiesWithAnInaccessibleSetter();
            CreateMap<WorkflowTemplateStepNotificationConfigRequestDto, WorkflowTemplateStepNotificationConfigEntity>().IgnoreAllPropertiesWithAnInaccessibleSetter();
            CreateMap<WorkflowTemplateStepNotificationConfigPutDto, WorkflowTemplateStepNotificationConfigEntity>().IgnoreAllPropertiesWithAnInaccessibleSetter();
            CreateMap<WorkflowTemplateStepNotificationConfigEntity, WorkflowTemplateStepNotificationConfigDto>().IgnoreAllPropertiesWithAnInaccessibleSetter();

            //工作流模板步骤子流程配置
            CreateMap<WorkflowTemplateStepSubFlowConfigDto, WorkflowTemplateStepSubFlowConfigEntity>().IgnoreAllPropertiesWithAnInaccessibleSetter();
            CreateMap<WorkflowTemplateStepSubFlowConfigRequestDto, WorkflowTemplateStepSubFlowConfigPutDto>().IgnoreAllPropertiesWithAnInaccessibleSetter();
            CreateMap<WorkflowTemplateStepSubFlowConfigRequestDto, WorkflowTemplateStepSubFlowConfigEntity>().IgnoreAllPropertiesWithAnInaccessibleSetter();
            CreateMap<WorkflowTemplateStepSubFlowConfigPutDto, WorkflowTemplateStepSubFlowConfigEntity>().IgnoreAllPropertiesWithAnInaccessibleSetter();
            CreateMap<WorkflowTemplateStepSubFlowConfigEntity, WorkflowTemplateStepSubFlowConfigDto>().IgnoreAllPropertiesWithAnInaccessibleSetter();

            //工作流模板步骤按钮配置
            CreateMap<WorkflowTemplateStepButtonConfigDto, WorkflowTemplateStepButtonConfigEntity>().IgnoreAllPropertiesWithAnInaccessibleSetter();
            CreateMap<WorkflowTemplateStepButtonConfigRequestDto, WorkflowTemplateStepButtonConfigPutDto>().IgnoreAllPropertiesWithAnInaccessibleSetter();
            CreateMap<WorkflowTemplateStepButtonConfigRequestDto, WorkflowTemplateStepButtonConfigEntity>().IgnoreAllPropertiesWithAnInaccessibleSetter();
            CreateMap<WorkflowTemplateStepButtonConfigPutDto, WorkflowTemplateStepButtonConfigEntity>().IgnoreAllPropertiesWithAnInaccessibleSetter();
            CreateMap<WorkflowTemplateStepButtonConfigEntity, WorkflowTemplateStepButtonConfigDto>().IgnoreAllPropertiesWithAnInaccessibleSetter();

            //工作流模板步骤结束配置
            CreateMap<WorkflowTemplateStepEndBaseConfigDto, WorkflowTemplateStepEndBaseConfigEntity>().IgnoreAllPropertiesWithAnInaccessibleSetter();
            CreateMap<WorkflowTemplateStepEndBaseConfigRequestDto, WorkflowTemplateStepEndBaseConfigPutDto>().IgnoreAllPropertiesWithAnInaccessibleSetter();
            CreateMap<WorkflowTemplateStepEndBaseConfigRequestDto, WorkflowTemplateStepEndBaseConfigEntity>().IgnoreAllPropertiesWithAnInaccessibleSetter();
            CreateMap<WorkflowTemplateStepEndBaseConfigPutDto, WorkflowTemplateStepEndBaseConfigEntity>().IgnoreAllPropertiesWithAnInaccessibleSetter();
            CreateMap<WorkflowTemplateStepEndBaseConfigEntity, WorkflowTemplateStepEndBaseConfigDto>().IgnoreAllPropertiesWithAnInaccessibleSetter();
            #endregion
        }
    }
}
